package com.core.cloudbusiness.system.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.cloudcommon.CommonPageResponse;
import com.core.cloundbusinessapi.system.user.dto.CloudSystemUserDTO;
import com.core.cloundbusinessapi.system.user.vo.*;

import java.util.List;

/**
 * @author =====Lqj=====
 * @className CloudSystemUserService
 * @description 用户添加、查询、删除、冻结、解冻相关接口
 * @create 2024/11/14 16:35
 **/

public interface CloudSystemUserService {

    /**
     * 用户添加接口
     *
     * @param cloudSystemUserVO
     * @return
     */
    CloudSystemUserDTO add(CloudSystemAddUserVO cloudSystemUserVO);

    /**
     * 单个查询用户，
     *
     * @param cloudSystemQueryListUserVO
     * @return
     */
    List<CloudSystemUserDTO> queryList(CloudSystemQueryListUserVO cloudSystemQueryListUserVO);

    /**
     * 修改用户登陆时间
     * @param id 用户ID
     */
    void updateLogTime(Long id);


    CommonPageResponse findPage(CloudSystemQueryListUserVO params);


    CloudSystemUserDTO findById(String id);

    Integer update(CloudSystemQueryListUserVO CloudSystemUserDTO);

    Integer delete(String id);

    // 新增：注册
    CloudSystemUserDTO register(CloudSystemRegisterVO vo);

    // 新增：修改密码（需要已登录用户）
    boolean changePassword(Long userId, CloudSystemChangePasswordVO vo);

    // 新增：重置密码（短信验证码）
    boolean resetPassword(CloudSystemResetPasswordVO vo);

    // 新增：获取个人资料
    CloudSystemUserDTO getProfile(Long userId);

    // 新增：更新个人资料
    CloudSystemUserDTO updateProfile(Long userId, CloudSystemUpdateProfileVO vo);
}
